FB - create procedure
Otázka od: Jan Rizek
24. 9. 2004 16:58
lze vytvorit v RunTime ulozenou proceduru, pomoci IBSQL? Bez pouziti IBScript?
Jde mi o to jestli tam musi byt vsechen tenhleten kod (statement):
SET TERM ^ ;
CREATE PROCEDURE ID_PARTNERI_IN_DOKLADY
AS
declare variable VID_DOKLADY integer;
BEGIN
/* pokud ID_PARTNERI neexistuje tak tam hodi -1 */
for
select ID_DOKLADY from DOKLADY D
left outer join PARTNERI P on
P.ID_PARTNERI=D.ID_PARTNERI
where P.ID_PARTNERI is null into :VID_DOKLADY do
update doklady set ID_PARTNERI=-1 where ID_DOKLADY=:VID_DOKLADY;
END
^
SET TERM ; ^
GRANT SELECT,UPDATE ON DOKLADY TO PROCEDURE ID_PARTNERI_IN_DOKLADY;
GRANT SELECT ON PARTNERI TO PROCEDURE ID_PARTNERI_IN_DOKLADY;
GRANT EXECUTE ON PROCEDURE ID_PARTNERI_IN_DOKLADY TO SYSDBA;
i s tema TERM - ama
Odpovedá: Petr Zahradnik
25. 9. 2004 15:55
Puvodni zprava ze dne 25.9.2004:
> Sklanim se pred Vasi moudrosti Ano pomohlo to..
> TO ADMIN: ja musel podekovat.. uz jsem z toho byl strasne zoufaly..
TO JAN RIZEK: Nekdy ti vysvetlim, jak se dekuje primo na e-mail toho,
kdo ti poradil - neni to ani tak slozite, zvladne to kazda frcinka
Jinak kdybys me vylozene neoslovoval, nic bych proti tomu nemel, kdyz
je tam aspon mimo dekovani take ta informace, ze to pomohlo.
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
Obvodova 740/14, 400 07 Usti nad Labem
telefon: 475 501 627, mobil: 602 409 601, fax: 475 511 338
web: http://www.clexpert.cz, e-mail: clexpert@clexpert.cz
ICQ: 21215917, MSN: clexpert@clexpert.cz
==========================================================
Odpovedá: Milan Tomes
24. 9. 2004 20:33
Set term neni prikaz FB, ale prikaz pro aplikaci, ktera provadi skripty. Do
jednoho IBSQL se muze dat v jeden okamzik pouze jeden prikaz. Pokud
potrebujes udelat sekvenci, tak proved ty prikazy postupne po sobe...
S pozdravem
Milan Tomes
> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Jan Rizek
> Sent: Friday, September 24, 2004 5:31 PM
>
> lze vytvorit v RunTime ulozenou proceduru, pomoci IBSQL? Bez
> pouziti IBScript? Jde mi o to jestli tam musi byt vsechen
> tenhleten kod (statement):
Odpovedá: Jan Rizek
25. 9. 2004 12:35
Nasleduji skript uplne v pohode v IBExpertu pustim - procedura se vytvori a
je funkcni.. Ale kdyz zkousim uplne to same udelat v aplikaci, tak mi to
neprojde - hlasi to:
Project Astor.exe raised exception class EIBInterBaseError with message
'Dynamic SQL Error
SQL error code = -104
Token unknown - line 11, char 7
?'.
Skript je to tento:
CREATE PROCEDURE ID_PARTNERI_IN_DOKLADY
AS
declare variable VID_DOKLADY integer;
BEGIN
/* pokud ID_PARTNERI neexistuje tak tam hodi -1 */
for
select ID_DOKLADY from DOKLADY D
left outer join PARTNERI P on
P.ID_PARTNERI=D.ID_PARTNERI
where P.ID_PARTNERI is null
into :VID_DOKLADY
do begin
update doklady set ID_PARTNERI=-1 where ID_DOKLADY=:VID_DOKLADY; end
END
chyba je v radku
into :VID_DOKLADY
Netusite nekdo, co delam spatne?
Odpovedá: Milan Tomes
25. 9. 2004 13:21
V IBSQL si nastav property CheckParams na false.
S pozdravem
Milan Tomes
> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Jan Rizek
> Sent: Saturday, September 25, 2004 1:34 PM
>
> CREATE PROCEDURE ID_PARTNERI_IN_DOKLADY
> AS
> declare variable VID_DOKLADY integer;
> BEGIN
> /* pokud ID_PARTNERI neexistuje tak tam hodi -1 */
> for
> select ID_DOKLADY from DOKLADY D
> left outer join PARTNERI P on
> P.ID_PARTNERI=D.ID_PARTNERI
> where P.ID_PARTNERI is null
> into :VID_DOKLADY
> do begin
> update doklady set ID_PARTNERI=-1 where
> ID_DOKLADY=:VID_DOKLADY; end
> END
>
>
> chyba je v radku
>
> into :VID_DOKLADY
>
> Netusite nekdo, co delam spatne?
Odpovedá: Jan Rizek
25. 9. 2004 15:17
Sklanim se pred Vasi moudrosti Ano pomohlo to..
TO ADMIN: ja musel podekovat.. uz jsem z toho byl strasne zoufaly..
> V IBSQL si nastav property CheckParams na false.
>
> S pozdravem
>
> Milan Tomes
>
>